/**
 * 栏目管理
 * 
 * @author liuxl
 * @email lxl_it@163.com
 * @version 1.0
 * @namespace Ext.ux
 * @class Ext.ux.CategoryPanel
 * @param categoryId
 *            栏目id
 * @return {}
 */
Ext.namespace('Ext.ux');
Ext.ux.CPanel = function(categoryId) {
	var listUrl = 'admin/category.jhtml?method=getFirstCategoryTree&mark=mark';
	if (categoryId != '0') {

		listUrl = 'admin/category.jhtml?method=categoryListByPId&pId='
				+ categoryId;
	}
	var sm = new Ext.grid.RowSelectionModel({
				singleSelect : true
			});

	var _jsonReader = new Ext.data.JsonReader({
				root : 'results',
				totalProperty : 'totalCount'
			}, [{
						name : 'categoryId'
					}, {
						name : 'categoryName'
					}, {
						name : 'categoryLevel'
					}, {
						name : 'location'
					}, {
						name : 'categoryDesc'
					}, {
						name : 'isPublic'
					}, {
						name : 'isPush'
					}]);

	var ds = getDs(listUrl,_jsonReader);

	var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
				header : "栏目标识",
				width : 50,
				sortable : true,
				dataIndex : 'categoryId'
			}, {
				header : "栏目名称",
				width : 100,
				sortable : true,
				dataIndex : 'categoryName'
			}, {
				header : "栏目排序",
				width : 80,
				sortable : true,
				dataIndex : 'location'
			}, {
				header : "栏目级别",
				width : 80,
				sortable : true,
				dataIndex : 'categoryLevel'
			}, {
				header : "是否推荐",
				width : 50,
				sortable : true,
				dataIndex : 'isPublic',
				renderer : isTopRender
			}, {
				header : "是否可定制",
				width : 100,
				sortable : true,
				dataIndex : 'isPush',
				renderer : isTopRender
			}]);

	var grid = new Ext.grid.GridPanel({
		cm : cm,
		sm : sm,
		border : false,
		loadMask : { // 加载数据时出险遮罩时状态条上呈现的等待信息
			msg : "数据加载中，请稍等..."
		},
		store : ds,
		viewConfig : {
			forceFit : true
			// 自动调整每列的宽度
		},
		bbar : golbalBBar(ds,100),
		tbar : [{
			text : '增加',
			tooltip : '增加一列',
			iconCls : 'add',
			handler : function() {
				var categoryParentId = null;
				var rows = grid.getSelectionModel().getSelections();
				if (rows.length != 0) {
					categoryParentId = rows[0].get("categoryId")
				}else{
				categoryParentId = categoryId;
				}
				/**
				 * 栏目 增、删、改、绑定模板
				 */
				// 开始创建Add面板
				var addCForm = new Ext.FormPanel({
					layout : 'form',
					border : false,
					labelSeparator : '：',
					frame : true,
					labelWidth : 70,
					labelAlign : 'left',
					buttonAlign : 'right',
					bodyStyle : 'padding:5px',
					width : 330,
					fileUpload : true, // 允许上传文件
					enctype : 'multipart/form-data',
					items : [{
								xtype : 'textfield',
								fieldLabel : '名称',
								name : 'categoryName',
								maxLength : 100,
								maxLengthText : '不能超过100个字符',
								allowBlank : false,
								blankText : '名称不能为空！',
								anchor : '96%'
							}, {
								xtype : 'textfield',
								inputType : 'file',
								fieldLabel : '图片',
								name : 'file',
								anchor : '96%'
							}, {
								xtype : 'textfield',
								fieldLabel : '图片URL',
								name : 'categoryImgToUrl',
								maxLength : 100,
								maxLengthText : '不能超过100个字符',
								allowBlank : false,
								blankText : '链接地址不能为空！',
								anchor : '96%'
							}, {
								xtype : 'radiogroup',
								fieldLabel : '是否推荐',
								items : [{
											boxLabel : '是',
											name : 'isPush',
											inputValue : 1
										}, {
											boxLabel : '否',
											name : 'isPush',
											inputValue : 0
										}]
							}, {
								xtype : 'radiogroup',
								fieldLabel : '是否可见',
								items : [{
											boxLabel : '是',
											name : 'isPublic',
											inputValue : 1,
											checked : true
										}, {
											boxLabel : '否',
											name : 'isPublic',
											inputValue : 0
										}]
							}, {
								xtype : 'textarea',
								fieldLabel : '描述',
								name : 'categoryDesc',
								id : 'categoryDesc',
								anchor : '96%',
								height : 200,
								width : 300
							}],
					buttons : [{
						id : 'btnSave',
						text : '保 存',
						handler : function() {
							if (addCForm.form.isValid())// 客户端先验证数据
							{
								addCForm.form.doAction('submit', {
									url : 'admin/category.jhtml?method=saveCategory',
									method : 'post',
									params : {
										categoryParentId : categoryParentId
									},
									waitTitle : '请稍候',
									waitMsg : '正在提交表单数据，请稍候...',
									success : function(form, action) {
										getAlertMessage("提示","操作成功!",Ext.MessageBox.INFO);
										addCForm.form.reset();
										this.disabled = false;
										newC1win.close();
										loadDs(ds,100);
									},
									failure : formError
								})
							}
						}

					}, {
						text : '取 消',
						handler : function() {
							newC1win.close();
						}
					}]
				});

				newC1win = new Ext.Window({
							xtype : 'window',
							title : '添加类别',
							buttonAlign : 'right',
							closable : true,
							layout : 'fit',
							modal : 'true',
							width : 350,
							height : 300,
							closeAction : 'close',
							plain : true,
							items : addCForm

						});
				newC1win.show();

			}
		}, '-', {
			text : '删除',
			tooltip : '挂起选中的一个栏目',
			iconCls : 'remove',
			handler : function() {

				var rows = grid.getSelectionModel().getSelections();// 返回值为
				// Record
				// 数组
				if (rows.length == 0) {
					getAlertMessage("警告","最少选择一条信息，进行删除!",Ext.MessageBox.WARNING);
				} else {
					Ext.MessageBox.confirm('提示框', '您确定要进行该操作？', function(btn) {
						if (btn == 'yes') {

							if (rows) {
								for (var i = 0; i < rows.length; i++) {
									var conn = new Ext.data.Connection();
									conn.request({
										url : 'admin/category.jhtml?method=delCategory',
										params : {
											categoryId : rows[i]
													.get("categoryId")
										}

									});

									break;
								}

							}
							loadDs(ds,100);
						}
					});
				} // 弹出对话框警告
			}
		}, '-', {
			text : '修改',
			tooltip : '修改选择的一行内容',
			iconCls : 'add',
			handler : function() {
				var rows = grid.getSelectionModel().getSelections();// 返回值为
				// Record
				// 数组
				if (rows.length == 0) {
					getAlertMessage("警告","最少选择一条信息，进行删除!",Ext.MessageBox.WARNING);
				} else {

					var id = rows[0].get("categoryId");
					var editCForm = new Ext.FormPanel({
						layout : 'form',
						border : false,
						labelSeparator : '：',
						frame : true,
						labelWidth : 80,
						labelAlign : 'left',
						buttonAlign : 'right',
						bodyStyle : 'padding:5px',
						fileUpload : true, // 允许上传文件
						enctype : 'multipart/form-data',
						width : 330,
						reader : new Ext.data.JsonReader({
									root : 'results'
								}, ['categoryId', 'categoryName',
										'categoryDesc', 'categoryImageUrl',
										'categoryImgToUrl', 'isPush',
										'isPublic']),
						items : [{
									xtype : 'hidden',
									name : 'categoryId',
									anchor : '96%'

								}, {
									xtype : 'textfield',
									fieldLabel : '名称',
									name : 'categoryName',
									// width:200
									allowBlank : false,
									blankText : '名称不能为空！',
									maxLength : 100,
									maxLengthText : '名称不能超过100个字符',
									anchor : '96%'
								}, {
									xtype : 'textfield',
									inputType : 'file',
									fieldLabel : '图片',
									name : 'file',
									// width:200
									anchor : '96%'
								}, {
									xtype : 'textfield',
									fieldLabel : '图片->URL',
									name : 'categoryImgToUrl',
									maxLength : 100,
									maxLengthText : '不能超过100个字符',
									allowBlank : false,
									blankText : '链接地址不能为空！',
									anchor : '96%'
								}, {
									xtype : 'radiogroup',
									fieldLabel : '是否推荐',
									items : [{
												boxLabel : '是',
												name : 'isPush',
												inputValue : 1
											}, {
												boxLabel : '否',
												name : 'isPush',
												inputValue : 0
											}]
								}, {
									xtype : 'radiogroup',
									fieldLabel : '是否可见',
									items : [{
												boxLabel : '是',
												name : 'isPublic',
												inputValue : 1,
												checked : true
											}, {
												boxLabel : '否',
												name : 'isPublic',
												inputValue : 0
											}]
								}, {
									xtype : 'textarea',
									fieldLabel : '描述',
									name : 'categoryDesc',
									anchor : '96%'
								}],
						buttons : [{
							id : 'btnSave',
							text : '保 存',
							handler : function() {
								if (editCForm.form.isValid())// 客户端先验证数据
								{

									// this.disabled = true; //禁止保存按钮，防止多次提交
									editCForm.form.doAction('submit', {
										url : 'admin/category.jhtml?method=updateCategory',
										method : 'post',
										waitTitle : '请稍候',
										waitMsg : '正在提交表单数据，请稍候...',
										success : function(form, action) {
											getAlertMessage("提示","数据修改成功!",Ext.MessageBox.WARNING);
											this.disabled = false;
											this.newwinC.close();
											loadDs(ds,100);
										},
										failure : formError
									})
								}
							}

						}, {
							text : '取 消',
							handler : function() {
								newwinC.close();
							}
						}]
					});
					newwinC = new Ext.Window({
								xtype : 'window',
								title : '编辑信息',
								buttonAlign : 'right',
								closable : true,
								layout : 'fit',
								modal : 'true',
								width : 350,
								height : 300,
								closeAction : 'close',
								plain : true,
								items : editCForm

							});
					var urlPath = "admin/category.jhtml?method=editCategory";
					editCForm.form.load({
								url : urlPath,
								params : {
									uId : id
								},
								method : 'post',
								success : function(form, action) {
								},
								failure : formError

							});
					newwinC.show();

				}

			}
		}, '-', {

			text : '排序',
			tooltip : '栏目排序',
			cls : 'x-btn-text-icon',
			icon : 'static/images/desktop/icons/arrow-up.gif',
			handler : function() {

				var rows = grid.getSelectionModel().getSelections();// 返回值为
				// Record
				// 数组
				if (rows.length == 0) {
					getAlertMessage("提示","最少选择一条信息，进行操作!",Ext.MessageBox.WARNING);
				} else {

					var editForm = new Ext.FormPanel({
						layout : 'form',
						border : false,
						labelSeparator : '：',
						frame : true,
						labelWidth : 60,
						labelAlign : 'left',
						buttonAlign : 'right',
						bodyStyle : 'padding:5px',
						width : 230,
						fileUpload : true,
						enctype : 'multipart/form-data',
						reader : new Ext.data.JsonReader({
									root : 'results'
								}, ['categoryId', 'location']),
						items : [{
									xtype : 'hidden',
									name : 'categoryId',
									anchor : '96%'
								}, {
									xtype : 'textfield',
									fieldLabel : '顺序',
									name : 'location',
									maxLength : 100,
									maxLengthText : '不能超过100个字符',
									allowBlank : false,
									blankText : '名称不能为空！',
									anchor : '96%'
								}],
						buttons : [{
							id : 'btnSave',
							text : '保 存',
							handler : function() {
								if (editForm.form.isValid()) {
									editForm.form.doAction('submit', {
										// 修改成保存
										// wap权重方法
										url : 'admin/category.jhtml?method=Order',
										method : 'post',
										waitTitle : '请稍候',
										waitMsg : '正在提交表单数据，请稍候...',
										success : function(form, action) {
											getAlertMessage("提示","操作成功!",Ext.MessageBox.WARNING);
											editForm.form.reset();
											this.disabled = false;
											editwin.close();
											loadDs(ds,100);
										},
										failure : function() {
											getAlertMessage("提示","保存失败!",Ext.MessageBox.WARNING);
											this.disabled = false;
										}
									})
								}
							}
						}, {
							text : '取 消',
							handler : function() {
								editwin.close();
							}
						}]
					});
					editwin = new Ext.Window({
								xtype : 'window',
								title : '栏目排序',
								buttonAlign : 'right',
								closable : true,
								layout : 'fit',
								modal : 'true',
								width : 250,
								height : 150,
								closeAction : 'close',
								plain : true,
								items : editForm
							});
					var rows = grid.getSelectionModel().getSelections();
					if (rows == 0) {
						getAlertMessage("提示","请确认是否选中要编辑的信息!",Ext.MessageBox.WARNING);
						return;
					}
					var id = rows[0].get("categoryId");
					editForm.form.load({
								url : 'admin/category.jhtml?method=editCategory',
								params : {
									uId : id
								},
								method : 'post',
								success : function(form, action) {
								}
							});
					editwin.show();

				} // 弹出对话框警告

			}

		}, '-', {

			text : '推荐',
			tooltip : '推荐选中的一列',
			cls : 'x-btn-text-icon',
			icon : 'static/images/desktop/icon/165518105.gif',
			handler : function() {
				var rows = grid.getSelectionModel().getSelections();// 返回值为
				if (rows.length == 0) {
					getAlertMessage("提示","请确认是否选中要编辑的信息!",Ext.MessageBox.WARNING);
				} else {

					for (var i = 0; i < rows.length; i++) {
						var conn = new Ext.data.Connection();
						conn.request({
									url : 'admin/category.jhtml?method=recommend',
									params : {
										categoryId : rows[i].get("categoryId")
									},
									success : function(resp, opt) {
										
									},
									failure : function(resp, opt) {
										Ext.Msg.alert('Error',
												'Unable to delete movie');
									}
								});
					}
					loadDs(ds,100);

				} // 弹出对话框警告
			}

		}]
	});
	return {
		getGrid : function(){
			return grid;
		}
	}
}